home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / sbprolog / amiga / toplevel.zoo / CHANGES < prev    next >
Text File  |  1989-08-16  |  2KB  |  66 lines

  1. Differences between versions 2.4 and 2.5 of SB-Prolog
  2. =====================================================
  3.  
  4. 1. The irritating requirement of pragma files for indexing has been
  5.    removed.  In Version 2.5, clause indexing occurs on the principal
  6.    functor of the first argument by default; an index may be created
  7.    on other arguments by giving the declaration
  8.        
  9.     :- index(P, N, I).
  10.  
  11.    which says that an index is to be created on argument I of the predicate
  12.    P/N.  If I = 0 no index is created for the predicate.
  13.  
  14. 2.(a) The semantics of retract/1 has been changed to be the same as
  15.       Edinburgh Prolog (e.g. C-Prolog, Quintus, Sicstus, etc.).  See User
  16.       Manual for a description of its behavior.
  17.    
  18.   (b) The behavior of cuts within if-then-elses ( -> ) in compiled code
  19.       has been changed: cuts within the head (i.e. the conditional test)
  20.       of an if-then-else are limited in scope to the head, as before; but
  21.       cuts within the body of an if-then-else (i.e. the subgoals B and C
  22.       in   A -> B ; C  ) now behave as hard cuts, unless they are within
  23.       the scope of a limiting construct such as a negation or the head of
  24.       an enclosing if-then-else.  This behavior makes the behavior of cuts
  25.       in if-then-elses similar in both compiled and interpreted code.  This
  26.       behavior is compatible with Quintus Prolog version 2.2, though the
  27.       syntax is somewhat more liberal in that it allows cuts in the test
  28.       of a conditional, whereas Quintus does not allow cuts there.
  29.    
  30.   (c) The behavior of display/1 and print/1 has been changed to be
  31.       consistent with C-Prolog, Quintus, and Sicstus Prologs.  See User
  32.       Manual for details.
  33.  
  34. 3. A distinguished output stream 'stderr', analogous to the stream 'user',
  35.    has been added.  The command
  36.  
  37.     ?- tell(stderr), write(X).
  38.  
  39.    causes (the binding of) X to be written to the standard error stream.
  40.    For convenience, a predicate errmsg/1 has been added that writes its
  41.    argument, followed by a newline, to stderr.
  42.  
  43. 4. Experience indicates that allowing options to "assert" is not very
  44.    useful.  Accordingly, this has been discontinued.  The meaning of
  45.    assert/2 has therefore changed, see User Manual for details.
  46.  
  47. 5. The following new predicates have been added:
  48.  
  49.     clause/2
  50.     clause/3
  51.     current_atom/1
  52.     current_functor/2
  53.     current_predicate/2
  54.     erase/1
  55.     errmsg/1
  56.     instance/2
  57.     is_buffer/1
  58.     listing/0
  59.     listing/1
  60.     predicate_property/2
  61.     recorda/3
  62.     recordz/3
  63.     recorded/3
  64.     retractall/1
  65.  
  66.